package serverMgr

import (
	"gitee.com/night-tc/gobige/etcd"
	"gitee.com/night-tc/gobige/global"
)

// 外部对象需要实现的逻辑
type IExt interface {
	//根据类型生成一个新的IServerInfo对象，用与从etcd读出来后进行填充
	NewInfo(stype global.ServerTypeEnum) IServerInfo
	// 获取自己服务器需要注册的信息
	GetSelfInfo() IServerInfo
	//获取到新的服务器信息的时候回调，一般用来判断是否需要连接这个服务器
	WatchInfoCallBack(sinfo IServerInfo)
	//获取ETCD的实例
	GetEtcd() *etcd.EtcdAccess
	// 获取服务器负载器
	GetDirMgr() *DiscoveryMgr
}
